Адміністрація вирішила продати даний сайт. За детальною інформацією звертайтесь за адресою: rozrahu@gmail.com

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Не вказано

Інформація про роботу

Рік:
2007
Тип роботи:
Лабораторна робота
Предмет:
Математика
Група:
ПМ-31

Частина тексту файла

Міністерствто освіти і науки України Національний університет “Львівська політехніка” Кафедра прикладної математики Звіт Лабораторна робота №2: Лексичний аналізатор Тема : Розглянути підмножину мови Pascal, у якій є ідентифікатори (довжина – не більше 10 символів), цілі константи (довжина – не більше 6 символів), дійсні константи з фіксованою крапкою ( довжина цілої частини – до 3 символів, дробової – до 5 символів), які використовуються у операторах опису (типи змінних – real , integer), оператори присвоєння, складні оператори (begin … end) умовні оператори (коротка форма, умова – одна операція порівняння). Код програми : using System; using System.IO; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Collections; namespace SysProgLab2 { public partial class Form1 : Form { ArrayList list = new ArrayList(); string s; string[] service ={"and","begin","real","integer","var","program","or"}; string[] ssplit; public Form1() { InitializeComponent(); } private void button3_Click(object sender, EventArgs e) { listBox1.Items.Clear(); s = textBox1.Text; ssplit = s.Split(new char[] {'\r',',','\n',' ','<','>',':','=',';'},StringSplitOptions.RemoveEmptyEntries); foreach (string stemp in ssplit) { transefer(stemp); } for (int k = 1; k < s.Length; k++) { if (s[k] == '=') { if (!Char.IsDigit(s[k + 1]) && !char.IsLetter(s[k + 1])) Err(k); if (!Char.IsDigit(s[k - 1]) && !char.IsLetter(s[k - 1]) && s[k - 1] != '>' && s[k - 1] != '<' && s[k - 1] != ':') Err(k); } if (s[k] == ':') { if (s[k + 1] != '=' && s[k + 1] != 'r' && s[k + 1] != 'i') Err(k); if (!char.IsLetter(s[k - 1]) && !char.IsDigit(s[k - 1])) Err(k); } if (s[k] == '.') { if (!char.IsLetter(s[k + 1]) && !char.IsDigit(s[k + 1])) Err(k); if (!char.IsLetter(s[k - 1]) && !char.IsDigit(s[k - 1])) Err(k); } if (s[k] == '>') { if (!char.IsLetter(s[k + 1]) && !char.IsDigit(s[k + 1])&&s[k+1]!='=') Err(k); if (!char.IsLetter(s[k - 1]) && !char.IsDigit(s[k - 1])&&s[k-1]!='<') Err(k); } if (s[k] == '<') { if (!char.IsLetter(s[k + 1]) && !char.IsDigit(s[k + 1]) && s[k + 1] != '=' && s[k - 1] != '<') Err(k); if (!char.IsLetter(s[k - 1]) && !char.IsDigit(s[k - 1]) ) Err(k); } } public bool isIndef(char[] ch) { if (ch[0] != '_' && !Char.IsLetter(ch[0])) return false; if (ch[0] == '_' && !char.IsLetter(ch[1])) return false; for (int i = 1; i < ch.Length; i++) { if (!char.IsLetter(ch[i]) && !char.IsDigit(ch[i]) && ch[i] != '_') return false; } return true; } public void Err(int i) { if (MessageBox.Show("Error in statement", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error) == DialogResult.OK) { textBox1.Focus(); textBox1.Select(i, 1); } } public bool isDConst(char[] ch) { int pr = 0; if (!char.IsDigit(ch[0])) return false; for (int i = 1; i < ch.Length; i++) { if (ch[i] == '...
Антиботан аватар за замовчуванням

01.01.1970 03:01

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини